///@file CrossSection.h
///@brief Declaration of the class representing a cross section
///@author Arnaud Duval
///@version 0.0
///@date 2010/03/31


#ifndef CROSSSECTION_H
#define CROSSSECTION_H

#include "ClosedPolyline.h"

///@class CrossSection
///@brief Class defining a Cross section
class CrossSection
{
	private:
		///@brief Area
		double A;
		///@brief Quadratic moment about x
		double Ixx;
		///@brief Quadratic moment about y
		double Iyy;
		///@brief Product of inertia
		double Ixy;
		///@brief x coordoinate of the centroid
		double CGx;
		///@brief y coordinate of the centroid
		double CGy;
		///@brief Warping constant
		double Iw;
		///@brief Torsional constant
		double J;
		///@brief x coordinate of shear center
		double SHx;
		///@brief y coordinate of shear center
		double SHy;
	public:
		///@brief Default constructor
		CrossSection();
		///@brief Constructor form a closed polyline
		CrossSection(ClosedPolyline);
		///@brief Destructor
		~CrossSection();
		///@brief Return Area
		double GetA();
		///@brief Return quadratic moment about x
		double GetIxx();
		///@brief Return quadratic moment about y
		double GetIyy();
		///@brief Return product of inertia
		double GetIxy();
		///@brief Return x coordinate of the centroid
		double GetCGx();
		///@brief Return y coordinate of the centroid
		double GetCGy();
		///@brief Return warping constant
		double GetIw();
		///@brief Return torsional constant
		double GetJ();
		///@brief Return x coordinate of shear center
		double GetSHx();
		///@brief Return y coordinate of shear center
		double GetSHy();

};


#endif